package com.gitee.qdbp.base.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 操作轨迹
 *
 * @author zhaohuihua
 * @version 170522
 */
@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface OperateTraces {

    /** 启用/禁用 **/
    boolean enable() default true;

    /** 记录操作日志时获取记录ID **/
    String id() default "";

    /** 记录操作日志时获取记录编号 **/
    String code() default "";

    /** 记录操作日志时获取数据描述 **/
    String desc() default "";

    /** 操作日志指向哪个子对象 **/
    // 如果有target, 则id/code/desc无效
    // Update对象本身没有操作日志所需要的内容, 必须从where子对象中获取
    String target() default "";

    /** 操作描述, 仅配置在DAO的方法上才有效(如:用户-修改) **/
    String operate() default "";
}
